/*
 *    Copyright (c) 2018-2025, shenghua All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: shenghua
 */

package com.chen.base.module.redis.annotation;


import com.chen.base.module.redis.service.impl.RedissonDistributedLock;

import java.lang.annotation.*;

/**
 * 分布式锁注解
 * @author 陈锦龙
 * @since 2022/3/16 15:44
 */
@Target(value = {ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Lock {

	/**
	 * 锁的KEY
	 */
    String value();

	/**
	 * 消息提示
	 */
	String msg() default "请勿重复操作!";

	/**
	 * 锁失效时间，单位：毫秒
	 */
	long expire() default 30000L;

	/**
	 * 锁的key前缀
	 */
	String prefixKey() default "LOCK:";

	/**
	 * 锁的具体实现类
	 */
	Class<?> actionClass() default RedissonDistributedLock.class;
}
